<?php
namespace App\Http\Controllers;

use Illuminate\Support\Facades\Session;

class Code
{
    function setCode($num = 4, $width = 100, $height = 30){
        $authcode = '';
        // 生成验证码
        for ($i = 0;$i<$num;$i++){
            switch (rand(0, 1))
            {
                case  0:$authcode[$i] = chr(rand(50, 57));
                    break; // 数字
                case  1:$authcode[$i] = chr(rand(65, 90));
                    break; // 大写字母
                //case  2:$authcode[$i]=chr(rand(97,122));break; // 小写字母
            }
        }
        Session::put('code',$authcode);
        $image = imagecreate($width, $height); // 赋值宽度，高度
        imagecolorallocate($image, 255, 255, 255); // 设定图片背景颜色
        // 生成干扰像素
        for ($i = 0; $i < 80; $i++) {
            $dis_color = imagecolorallocate($image, rand(0, 2555), rand(0, 255), rand(0, 255));
            imagesetpixel($image, rand(1, $width), rand(1, $height), $dis_color);
        }
        // 打印字符到图像
        for ($i = 0; $i < $num; $i++) {
            $char_color = imagecolorallocate($image, rand(0, 2555), rand(0, 255), rand(0, 255));
            imagechar($image, 60, ($width / $num) * $i, rand(0, 5), $authcode[$i], $char_color);
        }
        ob_end_clean();
        header("Content-type:image/png");
        imagepng($image);//输出图像到浏览器
        imagedestroy($image);//释放资源
    }
}
